home *** CD-ROM | disk | FTP | other *** search
Java Source | 2000-09-28 | 3.1 KB | 118 lines |
- /*
- * QuickTime for Java SDK Sample Code
-
- Usage subject to restrictions in SDK License Agreement
- * Copyright: © 1996-1999 Apple Computer, Inc.
-
- */
- import java.awt.*;
- import java.awt.image.*;
- import java.awt.event.*;
- import java.io.*;
-
- import quicktime.qd.*;
- import quicktime.*;
- import quicktime.std.StdQTConstants;
- import quicktime.std.image.GraphicsImporter;
- import quicktime.std.movies.*;
- import quicktime.io.*;
- import quicktime.util.*;
-
- import quicktime.app.QTFactory;
- import quicktime.app.display.*;
- import quicktime.app.image.*;
- import quicktime.app.players.MoviePlayer;
- import quicktime.util.*;
- import quicktime.std.image.GraphicsMode;
- import javax.swing.*;
-
- import ip.*;
-
- /** Uses a user canvas to draw the image that is produced by the QTImageProducer
- * from a MoviePlayer as the source of the image
- */
- public class ImageProducing extends JFrame implements MovieDrawingComplete, QDConstants, StdQTConstants {
- public static void main (String args[]) {
- try {
- QTSession.open();
- QTFile f1 = new QTFile (QTFactory.findAbsolutePath ("jumps.mov").getPath());
- ImageProducing pm = new ImageProducing (f1);
- pm.pack();
- pm.show();
- pm.toFront();
- } catch (Exception e) {
- e.printStackTrace();
- QTSession.close();
- }
- }
-
- ImageProducing (QTFile movFile) throws QTException {
- super ("Consumer");
-
- OpenMovieFile openMovieFile = OpenMovieFile.asRead(movFile);
- Movie m = Movie.fromFile (openMovieFile);
- m.getTimeBase().setFlags (loopTimeBase);
- MoviePlayer moviePlayer = new MoviePlayer (m);
- QDRect r = moviePlayer.getDisplayBounds();
- Dimension d = new Dimension (r.getWidth(), r.getHeight());
- ip = new QTImageProducer (moviePlayer, d);
-
- //this tells us that the movie has redrawn and
- //we use this to redraw the QTImageProducer - which will
- //supply more pixel data to its registered consumers
- m.setDrawingCompleteProc (movieDrawingCallWhenChanged, this);
-
- JPanel pan = new JPanel (new BorderLayout());
- getContentPane().add ("Center", pan);
- pan.add ("South", new ControlPanel (moviePlayer));
-
- IPJComponent canv = new IPJComponent (d, ip);
- pan.add("Center", canv);
-
- addWindowListener(new WindowAdapter () {
- public void windowClosing (WindowEvent e) {
- QTSession.close();
- dispose();
- }
- public void windowClosed (WindowEvent e) {
- System.exit(0);
- }
- });
- }
-
- QTImageProducer ip;
-
- public int execute (Movie m) {
- try {
- ip.updateConsumers (null);
- } catch (QTException e) {
- return e.errorCode();
- }
- return 0;
- }
-
- static class IPJComponent extends JComponent {
- IPJComponent (Dimension prefSize, QTImageProducer ip) {
- pSize = prefSize;
- im = createImage (ip);
- prepareImage (im, this);
- }
-
- private Dimension pSize;
- private Image im;
-
- public Dimension getPreferredSize() {
- return pSize;
- }
-
- public void paint (Graphics g) {
- g.drawImage (im, 0, 0, pSize.width, pSize.height, this);
- }
- // stops flicker as we have no background color to erase
- public void update (Graphics g) {
- paint (g);
- }
- }
- }
-
-